package cn.buk.tms.eotms.sc;

import cn.buk.common.sc.CommonSearchCriteria;

public class SearchFlightOrderCriteria extends CommonSearchCriteria {

    public static final int SEARCH_TO_DELIVERY = 0; // 待派送
    public static final int SEARCH_TO_PRINT = 1; // 待打印

    /**
     * 根据类型搜索：
     * -1 所有类型的客户
     * 0  只搜索散客
     * >0 搜索特定的企业客户
     */
    private int customerId = -1;

    /**
     * 企业客户类型：
     * 0 - 企业散客
     * 1 - 企业
     */
    private int customerType = -1;

    /**
     * 根据票号进行模糊搜索
     */
    private String ticketNo;

    private String balCode;

    /**
     * 0-国内
     * 1-国际
     */
    private int intlTicket = -1;

    /**
     * 乘机人电话
     */
    private String phone;

    /**
     * 联系人
     */
    private String linkman;

    /**
     * 联系人电话
     */
    private String linkPhone;

    /**
     * 航班号
     */
    private String flightNo;

    /**
     *  -1-查询所有
     *  1-行程单
     *  2-发票
     *  3-信息单
     */
    private int itineraryType = -1;

    /**
     * -1: 所有
     *  0: 未打印
     */
    private int printCount = -1;

    /**
     * 搜索类型
     * 0 - 搜索派送单（日期使用派送日期）
     * 1 - 搜索待打印的（日期使用出票日期）
     */
    private int searchType;

    /**
     * 订单的工作状态
     * 0-所有，不区分订单的工作状态
     * 1-只查看需要处理的订单（已出票，已取消）的订单不查看
     */
    private int workStatus;

    /**
     * 只查看自己的订单（预订人）
     * 1-只看自己的
     */
    private int onlyMine;

    private String op1;

    /**
     * 审批人
     */
    private String approver;

    private String orderNo; // 机票订单号，原订单号（用于关联退票、改签、服务）, 服务单号

    private String refundOrderNo; // 退票单号

    private String changeOrderNo; // 改签单号

    // -1 所有
    //  0/null 未付
    // 1 已付/已销账
    private int payStatus = -1;

    /**
     * 航司实退状态
     */
    private int airRefundStatus = -1;

    /**
     * 产品代码
     */
    private String productCode;

    /**
     * 订单类型
     */
    private int orderType;

    /**
     * 部门id
     */
    private Integer departmentId;

    /**
     * 员工 id
     */
    private Integer passengerId;

    public int getCustomerId() {
        return customerId;
    }

    public void setCustomerId(int customerId) {
        this.customerId = customerId;
    }

    public String getTicketNo() {
        return ticketNo == null ? "" : ticketNo.trim();
    }

    public void setTicketNo(String ticketNo) {
        this.ticketNo = ticketNo;
    }

    public int getIntlTicket() {
        return intlTicket;
    }

    public void setIntlTicket(int intlTicket) {
        this.intlTicket = intlTicket;
    }

    public String getPhone() {
        return phone == null ? "" : phone.trim();
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getLinkman() {
        return linkman == null ? "" : linkman.trim();
    }

    public void setLinkman(String linkman) {
        this.linkman = linkman;
    }

    public String getLinkPhone() {
        return linkPhone == null ? "" : linkPhone.trim();
    }

    public void setLinkPhone(String linkPhone) {
        this.linkPhone = linkPhone;
    }

    public String getBalCode() {
        return balCode;
    }

    public void setBalCode(String balCode) {
        this.balCode = balCode;
    }

    public int getItineraryType() {
        return itineraryType;
    }

    public void setItineraryType(int itineraryType) {
        this.itineraryType = itineraryType;
    }

    public int getPrintCount() {
        return printCount;
    }

    public void setPrintCount(int printCount) {
        this.printCount = printCount;
    }

    public int getSearchType() {
        return searchType;
    }

    public void setSearchType(int searchType) {
        this.searchType = searchType;
    }

    public int getWorkStatus() {
        return workStatus;
    }

    public void setWorkStatus(int workStatus) {
        this.workStatus = workStatus;
    }

    public int getOnlyMine() {
        return onlyMine;
    }

    public void setOnlyMine(int onlyMine) {
        this.onlyMine = onlyMine;
    }

    public String getOp1() {
        return op1 == null ? "" : op1.trim();
    }

    public void setOp1(String op1) {
        this.op1 = op1;
    }

    public String getOrderNo() {
        return orderNo == null ? "": orderNo.trim();
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public int getPayStatus() {
        return payStatus;
    }

    public void setPayStatus(int payStatus) {
        this.payStatus = payStatus;
    }

    public String getRefundOrderNo() {
        return refundOrderNo == null ? "" : refundOrderNo.trim();
    }

    public void setRefundOrderNo(String refundOrderNo) {
        this.refundOrderNo = refundOrderNo;
    }

    public String getChangeOrderNo() {
        return changeOrderNo == null ? "": changeOrderNo.trim();
    }

    public void setChangeOrderNo(String changeOrderNo) {
        this.changeOrderNo = changeOrderNo;
    }

    public int getAirRefundStatus() {
        return airRefundStatus;
    }

    public void setAirRefundStatus(int airRefundStatus) {
        this.airRefundStatus = airRefundStatus;
    }

    public int getCustomerType() {
        return customerType;
    }

    public void setCustomerType(int customerType) {
        this.customerType = customerType;
    }

    @Override
    public String getFlightNo() {
        return flightNo == null ? "" : flightNo.trim().toUpperCase();
    }

    @Override
    public void setFlightNo(String flightNo) {
        this.flightNo = flightNo;
    }

    public String getProductCode() {
        return productCode;
    }

    public void setProductCode(String productCode) {
        this.productCode = productCode;
    }

    public int getOrderType() {
        return orderType;
    }

    public void setOrderType(int orderType) {
        this.orderType = orderType;
    }

    public String getApprover() {
        return approver;
    }

    public void setApprover(String approver) {
        this.approver = approver;
    }



    public Integer getPassengerId() {
        return passengerId;
    }

    public void setPassengerId(Integer passengerId) {
        this.passengerId = passengerId;
    }

    public Integer getDepartmentId() {
        return departmentId;
    }

    public void setDepartmentId(Integer departmentId) {
        this.departmentId = departmentId;
    }
}
